package uqbar.tp.ruleta.modelo;

import java.util.ArrayList;
import java.util.Collection;

import uqbar.tp.ruleta.excepciones.SinLugarException;

public class Mesa {
	private Collection<Jugador> jugadores;
	private Integer cantidadMaximaJugadores;
	
	public Mesa(Integer cantidadMaximaJugadores) {
		this();
		this.cantidadMaximaJugadores = cantidadMaximaJugadores;
	}

	public Mesa() {
		this.jugadores = new ArrayList<Jugador>();
	}

	protected Collection<Jugador> getJugadores() {
		return jugadores;
	}

	protected void setJugadores(Collection<Jugador> jugadores) {
		this.jugadores = jugadores;
	}

	public boolean participa(Jugador jugador) {
		return this.getJugadores().contains(jugador);
	}

	public void unir(Jugador jugador) {
		if(this.tieneLugar()){
			this.jugadores.add(jugador);
			jugador.tomaFichas(jugador.getCantidadDeFichasPorUnirse());
		}
		else
			throw new SinLugarException("Limite de: "+this.cantidadMaximaJugadores+" alcanzado NO SE PUEDE UNIR!");
		
	}

	public boolean tieneLugar() {
		return this.getJugadores().size()<this.cantidadMaximaJugadores;
	}

}
